﻿//* Copyright(C) 2005-2012, all rights reserved.
//*
//* The following code is copyrighted and contains proprietary information
/* and trade secrets of Foxit Software Inc.      
**************************************************************************
*/

/**
鼠标事件接口类
*/


define(function (require, exports, module) {
    require('./Event.js');
    /**
     * @description  Represents the base interface for viewer mouse event handler.
     * The mouse event will be processed by IReaderMousePtHandler only if the event has not been processed by current tool(WebPDF.Tools.IReaderToolHandler).
     * @class
     * @memberOf WebPDF.Event
     */
    WebPDF.Event.IReaderMousePtHandler = function () {
    };

    WebPDF.Event.IReaderMousePtHandler.prototype =
    {
    	/**
    	  * @description Get name of this handler.
    	  * @return {String} Name of this handler.
    	*/
        getType: function () { return "Interface"; },
        /**
         * @description The event triggers when the left mouse button is down.
         * @param {Object} event The event object containing mouse coordinates.
         * @return {Boolean} Return true if you don't want other mouse event handler to process this event, otherwise return false.
         */
        onLButtonDown: function (event) { return false; },
        /**
         * @description The event triggers when the left mouse button is up.
         * @param {Object} event The event object containing mouse coordinates.
         * @return {Boolean} Return true if you don't want other mouse event handler to process this event, otherwise return false.
         */
        onLButtonUp: function (event) { return false; },
        /**
         * @description The event triggered when the mouse left button is double clicked.
         * @param {Object} event The event object containing mouse coordinates.
         * @return {Boolean} Return true if you don't want other mouse event handler to process this event, otherwise return false.
         */
        onLButtonDblClk: function (event) { return false; },
        /**
         * @description The event triggered when the mouse moves.
         * @param {Object} event The event object containing mouse coordinates.
         * @return {Boolean} return true if you don't want other mouse event handler to process this event, otherwise return false.
         */
        onMouseMove: function (event) { return false; },
        /**
         * @description trigger by right mouse button click on web reader.
         * @param {Object} event the event object containing mouse coordinates.
         * @return {Boolean} return true if you don't want other mouse event handler to process this event, otherwise return false.
         * @ignore
         */
        onRButtonDown: function (event) { return false; },
        /**
         * @description trigger by right mouse button up.
         * @param {Object} event information of the event.
         * @return {Boolean} if return true，the event will not be processed by other “MousePtHandler”, 
 		* otherwise, the event will not be processed by other “MousePtHandler”;
         * @ignore
         */
        onRButtonUp: function (event) { return false; },
        /**
         * @description Trigger when right mouse button double click.
         * @param {Object} event Information of the event.
         * @return {Boolean} If return true，the event will not be processed by other “MousePtHandler”,
 		* otherwise, the event will not be processed by other “MousePtHandler”;
         * @ignore
         */
        onRButtonDblClk: function (event) { return false; },
        onMouseWheel: function (event) { return false; },
        onMouseOver: function (event) { return false; },
        onMouseOut: function (event) { return false; },
        /**
         * @description The event triggers when the mouse leaves the viewer area.
         * @param {Object} event The event object containing mouse coordinates.
         * @return {Boolean}  Return true if you don't want other mouse event handler to process this event, otherwise return false.
         */
        onMouseLeave: function (event) { return false; },
        /**
         * @description The event triggers when the mouse enters the viewer area.
         * @param {Object} event The event object containing mouse coordinates.
         * @return {Boolean} Return true if you don't want other mouse event handler to process this event, otherwise return false.
         */
        onMouseEnter: function (event) { return false; },
        /**
         * Trigger when double tap on a touchable device.
         * @param {Object} event Event information of the event.
         * @ignore
         */
        onDoubleTap: function(event) {},
        /**
         * Trigger when pinch in on a touchable device.
         * @param {Object} event Event information of the event.
         * @ignore
         */
        onPinchIn: function(event) {},
        /**
         * Trigger when pinch out on a touchable device.
         * @param {Object} event Event information of the event.
         * @ignore
         */
        onPinchOut: function(event) {},
        /**
         * Trigger when hold on a touchable device.
         * @param {Object} event Event information of the event.
         * @ignore
         */
        onHold: function(event) {}
    };


    return WebPDF.Event.IReaderMousePtHandler;
});